// pages/data-export/index.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    exportTypes: [
      {
        id: 'medication',
        name: '用药记录',
        desc: '导出您的用药历史记录',
        icon: '/images/icon-medication.png'
      },
      {
        id: 'health',
        name: '健康数据',
        desc: '导出您的健康监测数据',
        icon: '/images/icon-health.png'
      },
      {
        id: 'emergency',
        name: '紧急呼叫记录',
        desc: '导出您的紧急呼叫历史',
        icon: '/images/icon-emergency.png'
      }
    ],
    dateRange: {
      start: '',
      end: ''
    },
    loading: false,
    selectedFontSize: 'normal',
    isExporting: false,
    showSidebar: false,
    userInfo: {}
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    // 设置默认日期范围为最近一个月
    const end = new Date()
    const start = new Date()
    start.setMonth(start.getMonth() - 1)
    
    this.setData({
      dateRange: {
        start: this.formatDate(start),
        end: this.formatDate(end)
      }
    })

    // 同步全局字体大小状态
    const app = getApp()
    this.setData({
      selectedFontSize: app.globalData.fontSize || 'normal'
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    // 同步全局字体大小状态
    const app = getApp()
    this.setData({
      selectedFontSize: app.globalData.fontSize || 'normal'
    })
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  },

  // 格式化日期
  formatDate(date) {
    const year = date.getFullYear()
    const month = String(date.getMonth() + 1).padStart(2, '0')
    const day = String(date.getDate()).padStart(2, '0')
    return `${year}-${month}-${day}`
  },

  // 选择开始日期
  bindStartDateChange(e) {
    this.setData({
      'dateRange.start': e.detail.value
    })
  },

  // 选择结束日期
  bindEndDateChange(e) {
    this.setData({
      'dateRange.end': e.detail.value
    })
  },

  // 处理日期选择
  bindDateChange(e) {
    const { field } = e.currentTarget.dataset
    this.setData({
      [`dateRange.${field}`]: e.detail.value
    })
  },

  // 导出数据
  exportData(e) {
    const { type } = e.currentTarget.dataset
    const { start, end } = this.data.dateRange

    if (!start || !end) {
      wx.showToast({
        title: '请选择日期范围',
        icon: 'none'
      })
      return
    }

    this.setData({ isExporting: true })

    // 模拟导出过程
    setTimeout(() => {
      this.setData({ isExporting: false })
      wx.showToast({
        title: '导出成功',
        icon: 'success'
      })
    }, 2000)
  },

  // 处理导出
  handleExport(e) {
    const { type } = e.currentTarget.dataset
    const { start, end } = this.data.dateRange

    if (!start || !end) {
      wx.showToast({
        title: '请选择日期范围',
        icon: 'none'
      })
      return
    }

    this.setData({ isExporting: true })

    // 模拟导出过程
    setTimeout(() => {
      this.setData({ isExporting: false })
      wx.showToast({
        title: '导出成功',
        icon: 'success'
      })
    }, 2000)
  },

  onToggleSidebar() {
    this.setData({ showSidebar: !this.data.showSidebar })
  },

  onSidebarNavigate(e) {
    const page = e.detail.page
    this.setData({
      currentPage: page,
      showSidebar: false
    })
    let url = ''
    switch(page) {
      case 'index': url = '/pages/index/index'; break
      case 'medicine': url = '/pages/medicine/index'; break
      case 'health': url = '/pages/health/index'; break
      case 'emergency': url = '/pages/emergency/index'; break
      case 'ai-chat': url = '/pages/ai-chat/index'; break
      case 'data-export': url = '/pages/data-export/index'; break
    }
    if (url && url !== getCurrentPages().slice(-1)[0].route) {
      wx.navigateTo({ url })
    }
  }
})